import time
import random
user_informations={}
def printView():
    print("*"*20)
    print("*"+" "*18+"*")
    print("*" + " " * 18 + "*")
    print("  欢迎登录银行系统")
    print("*" + " " * 18 + "*")
    print("*" + " " * 18 + "*")
    print("*"*20)
def printSysFunctionView():
    print("****************************************************")
    print("*         开户（1）            查询（2）            *")
    print("*         取款（3）            存款（4）            *")
    print("*         转账（5）            改密（6）            *")
    print("*         锁定（7）            解锁（8）            *")
    print("*         补卡（9）            销户（0）            *")
    print("*                    退出（q）                     *")
    print("****************************************************")
def adminPaswd():
    admin="admin"
    passwd="admin"
    input_admin = input("请您输入银行系统账户:")
    if admin !=input_admin:
        print("账户输入错误")
        return -1
    input_paswwd = input("请您输入银行系统密码:")
    if passwd != input_paswwd:
        print("密码输入错误:")
        return -1

def draw_money():
    user_name_card=card_information_query()
    draw_money_nums=int(input("请您输入取款金额:"))
    if user_informations[user_name_card][1]>draw_money_nums:
        user_informations[user_name_card][1]-=draw_money_nums
        if user_informations[user_name_card][1]>=0:
            print("取款成功,账户余额是{}".format(user_informations[user_name_card][1]))
            return -1
    else:
        print("余额不足,请您重新输入......")
        draw_money()

def save_money():
    user_name_card=card_information_query()
    save_money_nums=int(input("请您输入存款金额:"))
    if save_money_nums>0:
        user_informations[user_name_card][1] += save_money_nums
        print("开始存钱,请您等待3(s)。。。。")
        time.sleep(3)
        print("存钱成功，账户余额是:{}".format(user_informations[user_name_card][1]))

def open_count():
    card_information=[]
    card_name = input("请输入姓名:")
    card_passwd = input("请您输入密码")
    card_id=card_numbers()
    card_money=500
    card_information.append(card_id)
    card_information.append(card_money)
    print("正在开户,请稍等。。。。。")
    #time.sleep(3)
    user_informations[card_name]=card_information
    print(user_informations)
    print("开户成功:姓名:{},密码:{},卡号:{},余额:{}".format(card_name,card_passwd,card_id,card_money))

def Cancel_account():#销户
    Cancel_account_user=input("请您输入要销户的名称")
    user_name = check_card_information(Cancel_account_user)
    if user_name ==-1:
        print("用户不存在")
        return -1
    elif  user_informations[user_name][1]==0:
            user_informations.pop(user_name)
            print("开始销户，请等待。。。。")
            time.sleep(3)
            print("销户成功")
    else:
        print("卡内有余额,请您先取出，在销户")
        return -1
def card_information_query():#查询用户卡信息，连续输入3次查询不到就退出。
    for count in range(3):
        user_name=input("请您输入账号的姓名:")
        a=user_informations.get(user_name,None)
        if a==None:
                print("您输入的用户不存在,请您重新输入.....")
        else:
            print(a)
            #return user_name
            return user_name

def check_card_information(user_name):#查询用户卡信息，连续输入3次查询不到就退出。
        a=user_informations.get(user_name,None)
        if a==None:
                print("您输入的用户不存在,请您重新输入.....")
                return -1
        else:
            print(a)
            #return user_name
            return user_name

def card_numbers():#随机生成卡号
    new_card = []
    for i in range(4):
        a = "".join(random.choices("1234567890", k=5))
        new_card.append(a)
    return "-".join(new_card)

def displayView():
    printView()
    if adminPaswd():
        return
    else:
        while True:
            printSysFunctionView()
            function_num=input("请您输入功能项目序号:")
            if function_num=="1":
                open_count()
            elif function_num=="2":
                card_information_query()
            elif function_num=="3":
                draw_money()
            elif function_num=="4":
                save_money()
            elif function_num=="5":
                #没时间写了，后面补上
                pass
            elif function_num=="6":
                # 没时间写了，后面补上
                pass
            elif function_num=="7":
                # 没时间写了，后面补上
                pass
            elif function_num=="8":
                # 没时间写了，后面补上
                pass
            elif function_num=="0":
                Cancel_account()
            else:
                print("正在退出系统，请稍后。。。")
                time.sleep(3)
                break
def main():
    displayView()
if __name__ == '__main__':
    main()

# 别为了写作业而写作业，咱们的作业是为了让你更好的巩固基础的


